#ifndef _SELECTOR_H_
#define _SELECTOR_H_

#include <set>
#include <map>
#include <string>
#include <functional>

class Selector
{
public:
    virtual ~Selector() {}

    virtual void Insert(int fd) = 0;
    virtual std::set<int> SelectedKeys() = 0;
protected:
    Selector() {}
};

class SelectorFactory
{
public:
    static Selector* Create(int type);
};

#endif
